@use "./yakit-colors-generator.scss" as generatorColors;

// 生成语义化 neutral 变量
@mixin generate-neutral-semantic-colors($mode: light) {
    $prefix: --Colors-Use-Neutral-;

    @if $mode == light {
        #{$prefix}Bg: var(--yakit-colors-Neutral-10);
        #{$prefix}Bg-Hover: var(--yakit-colors-Neutral-20);
        #{$prefix}Border: var(--yakit-colors-Neutral-30);
        #{$prefix}Disable: var(--yakit-colors-Neutral-50);
        #{$prefix}Text-4-Help-text: var(--yakit-colors-Neutral-70);
        #{$prefix}Text-3-Secondary: var(--yakit-colors-Neutral-80);
        #{$prefix}Text-2-Primary: var(--yakit-colors-Neutral-90);
        #{$prefix}Text-1-Title: var(--yakit-colors-Neutral-100);
    } @else if $mode == dark {
        #{$prefix}Bg: var(--yakit-colors-Neutral-0); // 极暗背景色
        #{$prefix}Bg-Hover: var(--yakit-colors-Neutral-20);
        #{$prefix}Border: var(--yakit-colors-Neutral-30);
        #{$prefix}Disable: var(--yakit-colors-Neutral-40);
        #{$prefix}Text-4-Help-text: var(--yakit-colors-Neutral-50);
        #{$prefix}Text-3-Secondary: var(--yakit-colors-Neutral-60);
        #{$prefix}Text-2-Primary: var(--yakit-colors-Neutral-70);
        #{$prefix}Text-1-Title: var(--yakit-colors-Neutral-80);
    }
}

// 生成语义化 Basic 变量
@mixin generate-basic-semantic-colors($mode: light) {
    $prefix: --Colors-Use-Basic-;

    @if $mode == light {
        #{$prefix}White: #FFFFFF;
        #{$prefix}Black: #171717;
        #{$prefix}Shadow: rgba(23,23,23, 0.08);
        #{$prefix}Modal-bg: rgba(23,23,23, 0.3);
        #{$prefix}Background: var(--yakit-colors-Neutral-0);
    } @else if $mode == dark {
        #{$prefix}White: #FFFFFF;
        #{$prefix}Black: #171717;
        #{$prefix}Shadow: rgba(0,0,0, 0.8);
        #{$prefix}Modal-bg: rgba(0,0,0, 0.7);
        #{$prefix}Background: var(--yakit-colors-Neutral-10); // 极暗背景色
    }
}

// 通用生成语义化颜色的 main / error / waring / success 变量
@mixin generate-semantic-colors($color-name, $mode: light) {
    $prefix: "--Colors-Use-#{$color-name}-";

    @if $mode == light {
        #{$prefix}Bg: var(--yakit-colors-#{$color-name}-10);
        #{$prefix}Bg-Hover: var(--yakit-colors-#{$color-name}-20);
        #{$prefix}Focus: var(--yakit-colors-#{$color-name}-30);
        #{$prefix}Border: var(--yakit-colors-#{$color-name}-40);
        #{$prefix}Hover: var(--yakit-colors-#{$color-name}-50);
        #{$prefix}Primary: var(--yakit-colors-#{$color-name}-60);
        #{$prefix}Pressed: var(--yakit-colors-#{$color-name}-70);
        #{$prefix}On-Primary: var(--yakit-colors-#{$color-name}-10);
    } @else if $mode == dark {
        #{$prefix}Bg: var(--yakit-colors-#{$color-name}-10);
        #{$prefix}Bg-Hover: var(--yakit-colors-#{$color-name}-20);
        #{$prefix}Focus: var(--yakit-colors-#{$color-name}-30);
        #{$prefix}Border: var(--yakit-colors-#{$color-name}-40);
        @if $color-name == Main {
            #{$prefix}Hover: var(--yakit-colors-#{$color-name}-50);
            #{$prefix}Primary: var(--yakit-colors-#{$color-name}-60);
        } @else {
            #{$prefix}Hover: var(--yakit-colors-#{$color-name}-60);
            #{$prefix}Primary: var(--yakit-colors-#{$color-name}-70);
        }
        #{$prefix}Pressed: var(--yakit-colors-#{$color-name}-80);
        #{$prefix}On-Primary: var(--yakit-colors-#{$color-name}-100);
    }
}

// 通用生成语义化颜色的 purple / magenta / blue / lake-blue / cyan / green / red / orange / yellow / grey 变量
@mixin generate-tag-semantic-colors($color-name, $mode: light) {
    $prefix: "--Colors-Use-#{$color-name}-";

    @if $mode == light {
        @if $color-name == "Grey" {
            #{$prefix}Bg: var(--yakit-colors-Neutral-20);
            #{$prefix}Bg-Hover: var(--yakit-colors-Neutral-30);
            #{$prefix}Border: var(--yakit-colors-Neutral-40);
            #{$prefix}Primary: var(--yakit-colors-Neutral-60);
            #{$prefix}On-Primary: var(--yakit-colors-Neutral-10);
        } @else{
            #{$prefix}Bg: var(--yakit-colors-#{$color-name}-20);
            #{$prefix}Bg-Hover: var(--yakit-colors-#{$color-name}-30);
            #{$prefix}Border: var(--yakit-colors-#{$color-name}-40);
            #{$prefix}Primary: var(--yakit-colors-#{$color-name}-60);
            #{$prefix}On-Primary: var(--yakit-colors-#{$color-name}-10);
        }
    } @else if $mode == dark {
        @if $color-name == "Grey" {
            #{$prefix}Bg: var(--yakit-colors-Neutral-20);
            #{$prefix}Bg-Hover: var(--yakit-colors-Neutral-30);
            #{$prefix}Border: var(--yakit-colors-Neutral-40);
            #{$prefix}Primary: var(--yakit-colors-Neutral-70);
            #{$prefix}On-Primary: var(--yakit-colors-Neutral-100);
        }@else {
            #{$prefix}Bg: var(--yakit-colors-#{$color-name}-20);
            #{$prefix}Bg-Hover: var(--yakit-colors-#{$color-name}-30);
            #{$prefix}Border: var(--yakit-colors-#{$color-name}-40);
            #{$prefix}Primary: var(--yakit-colors-#{$color-name}-70);
            #{$prefix}On-Primary: var(--yakit-colors-#{$color-name}-100);

        }
    }
}

// 生成语义化 Status 变量
@mixin generate-status-semantic-colors($mode: light) {
    $prefix: --Colors-Use-Status-;

    @if $mode == light {
        #{$prefix}Serious: var(--yakit-colors-Error-80);
        #{$prefix}High: var(--yakit-colors-Error-60);
        #{$prefix}Medium: var(--yakit-colors-Warning-60);
        #{$prefix}Low: var(--yakit-colors-Yellow-60);
        #{$prefix}Safe: var(--yakit-colors-Success-60);
        #{$prefix}Unknown: var(--yakit-colors-Neutral-70);
    } @else if $mode == dark {
        #{$prefix}Serious: var(--yakit-colors-Error-50);
        #{$prefix}High: var(--yakit-colors-Error-70);
        #{$prefix}Medium: var(--yakit-colors-Warning-70);
        #{$prefix}Low: var(--yakit-colors-Yellow-70);
        #{$prefix}Safe: var(--yakit-colors-Success-70);
        #{$prefix}Unknown: var(--yakit-colors-Neutral-50);
    }
}